﻿// Namespace LyncServerExtension.Messages: Internationalization related functions.

// Namespace creation, and protection against global environment modification.
LyncServerExtension.Messages = (function (ns) {

    var _language = null;

    // Gets the messages language.
    ns.getLanguage = function () {
        return _language;
    }

    // Sets the messages language.
    ns.setLanguage = function (value) {
        if (!value || !ns[value]) {
            _language = 'en';
            return;
        }
        _language = value;
    }

    // Gets a message from its key.
    ns.get = function (key) {
        return ns[_language][key];
    }

    // English messages.
    ns.en = {
        dropOwner: "To choose a delegation owner, drag and drop a user from left to the zone above.",
        dropDelegate: "To choose a new delegate drag and drop from left, or drag and drop from right to this zone to cancel a delegation.",
        listingDelegates: "Looking for this user existing delegates, please wait...",
        chooseAction: "Choose an action.",
        addingDelegation: "Adding delegation, please wait...",
        removingDelegation: "Removing delegation, please wait..."
    };

    // French messages.
    ns.fr = {
        dropOwner: "Déposez un utilisateur de gauche dans cette zone, pour le désigner comme propriétaire de la délégation.",
        dropDelegate: "Déposez un utilisateur de gauche dans cette zone, pour le désigner comme nouveau délégué, ou déposez un utilisateur de droite pour annuler une délégation existante.",
        listingDelegates: "Recherche des délégués existants pour cet utilsateur, merci de patienter...",
        chooseAction: "Choisissez une action.",
        addingDelegation: "Ajout de la délégation, merci de patienter...",
        removingDelegation: "Retrait de la délégation, merci de patienter..."
    };

    // Sets the messages language based on the browser default language.
    ns.setLanguage((navigator.language || navigator.systemLanguage || navigator.userLanguage || 'en').substr(0, 2).toLowerCase());
    return ns;
})({});